// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`A.js 1`] = `
/* @providesModule A */
class Implementation {}
export function foo(): Implementation { return new Implementation; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @providesModule A */
class Implementation {}
export function foo(): Implementation {
  return new Implementation();
}

`;

exports[`ExplicitProvidesModuleDifferentName.js 1`] = `
/*
 * @providesModule ExplicitProvidesModuleDifferentName
 * @flow
 */

class Implementation {}
module.exports.fun = (): Implementation => new Implementation;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/*
 * @providesModule ExplicitProvidesModuleDifferentName
 * @flow
 */

class Implementation {}
module.exports.fun = (): Implementation => new Implementation();

`;

exports[`ExplicitProvidesModuleSameName.js 1`] = `
/*
 * @providesModule ExplicitProvidesModuleSameName
 * @flow
 */

class Implementation {}
module.exports.fun = (): Implementation => new Implementation;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/*
 * @providesModule ExplicitProvidesModuleSameName
 * @flow
 */

class Implementation {}
module.exports.fun = (): Implementation => new Implementation();

`;

exports[`ImplicitProvidesModule.js 1`] = `
/*
 * @providesModule ImplicitProvidesModule
 * @flow
 */

class Implementation {}
module.exports.fun = (): Implementation => new Implementation;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/*
 * @providesModule ImplicitProvidesModule
 * @flow
 */

class Implementation {}
module.exports.fun = (): Implementation => new Implementation();

`;

exports[`md5.js 1`] = `
/* @providesModule md5 */
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @providesModule md5 */

`;

exports[`test.js 1`] = `
/* @flow */

var Implicit = require('ImplicitProvidesModule');
(Implicit.fun(): boolean); // Error: Either Implementation ~> boolean or Declaration ~> boolean

var ExplicitSameName = require('ExplicitProvidesModuleSameName');
(ExplicitSameName.fun(): boolean); // Error: Either Implementation ~> boolean or Declaration ~> boolean

var ExplicitDifferentName = require('ExplicitProvidesModuleDifferentName');
(ExplicitDifferentName.fun(): boolean); // Error: Either Implementation ~> boolean or Declaration ~> boolean
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @flow */

var Implicit = require("ImplicitProvidesModule");
(Implicit.fun(): boolean); // Error: Either Implementation ~> boolean or Declaration ~> boolean

var ExplicitSameName = require("ExplicitProvidesModuleSameName");
(ExplicitSameName.fun(): boolean); // Error: Either Implementation ~> boolean or Declaration ~> boolean

var ExplicitDifferentName = require("ExplicitProvidesModuleDifferentName");
(ExplicitDifferentName.fun(): boolean); // Error: Either Implementation ~> boolean or Declaration ~> boolean

`;
